Per-device authentication

ABSTRACT

Systems and techniques are provided for per-device authentication. A hardware serial number associated with a hardware component of a computing device may be received. The hardware serial number may be converted to a hardware key check. A hardware key associated with a certificate from the computing device may be received. The hardware key may be compared to the hardware check key to obtain a verification of the certificate. The certificate may be verified when the hardware key check matches the hardware key and the certificate may not be verified when the hardware key check does not match the hardware key. A signature associated with the certificate may be verified. Access to the data processing apparatus by the computing device may be permitted when the certificate is verified and the signature is determined to be authentic.

This application is a continuation of U.S. application Ser. No.14/311,377, filed Jun. 23, 2014, the entire contents of which is herebyincorporated by reference.

BACKGROUND

A smartphone, tablet, or other mobile computing device may be connectedto the head unit of a car's audio/visual system or other vehiclecomputing device. The head unit may need to authenticate any smartphonethat connects to it, to ensure that the smartphone is authorized toconnect to and interact with the head unit. This may be done by issuingevery smartphone, tablet, or other mobile computing device its ownunique certificate. Issuing a unique certificate to every authorizedmobile computing device may prevent certificates from being stolen andused on any other authorized or non-authorized mobile computing devices.The number of certificates required to ensure that every mobilecomputing device may be very large, and it may difficult to generateunique signatures for that many certificates.

BRIEF SUMMARY

According to an embodiment of the disclosed subject matter, a hardwareserial number associated with a hardware component of a computing devicemay be received. The hardware serial number may converted to a hardwarekey. The hardware key may be stored as part of a certificate. Thecertificate may include a signature. The certificate may be sent to thecomputing device. A second hardware serial number associated with secondhardware component of a second computing device may be received. Thesecond hardware component may be of the same type as the hardwarecomponent. The second hardware serial number may be converted to asecond hardware key. The second hardware key may be stored as part of asecond certificate. The second certificate may include a secondsignature equivalent to the signature. The second certificate may besent to the second computing device.

Converting the hardware serial number to a hardware key may includehashing the hardware serial number to obtain a hash. A portion of thehash may discarded. The hardware component may be a USB chip or networkinterface card. The signature may be generated for use with SSL.

A hardware serial number associated with a hardware component of acomputing device may be received. The hardware serial number may beconverted to a hardware key check. A hardware key associated with acertificate from the computing device may be received. The hardware keymay be compared to the hardware check key to obtain a verification ofthe certificate. The certificate may be verified when the hardware keycheck matches the hardware key and the certificate may not be verifiedwhen the hardware key check does not match the hardware key. A signatureassociated with the certificate may be verified. Access to the dataprocessing apparatus by the computing device may be permitted when thecertificate is verified and the signature is determined to be authentic.

A second hardware serial number associated with a second hardwarecomponent of a second computing device may be received. The secondhardware component may be of the same type as the hardware component ofthe first computing device. The second hardware serial number may beconverted to a second hardware key check. A second hardware keyassociated with a second certificate from the second computing devicemay be received. The second hardware key may be compared to the secondhardware key check to obtain a verification of the second certificate.The second certificate may be verified when the second hardware keycheck matches the second hardware key and the second certificate may notbe verified when the second hardware key check does not match the secondhardware key, and wherein a second signature equivalent to the signatureis associated with the second certificate. The second signature may beauthenticated. Access may be permitted to the data processing apparatusby the second computing device when the second certificate is verifiedand the second signature is determined to be authentic.

Converting the hardware serial number to a hardware key check mayinclude hashing the hardware serial number to obtain a hash. A portionof the hash may discarded. Converting the hardware serial number to ahardware key check may be performed based on a manner in which thehardware key was generated from the hardware serial number when thecertificate was issued to the computing device. The hardware componentmay be a USB chip or network interface card. The data processingapparatus may be a vehicle computing device and the computing device maybe a mobile computing device.

According to an embodiment of the disclosed subject matter, a means forreceiving a hardware serial number associated with a hardware componentof a computing device, a means for converting the hardware serial numberto a hardware key, a means for storing the hardware key as part of acertificate, where the certificate may include a signature, a means forsending the certificate to the computing device, a means for receiving asecond hardware serial number associated with second hardware componentof a second computing device, where the second hardware component may beof the same type as the hardware component, a means for converting thesecond hardware serial number to a second hardware key, a means forstoring the second hardware key as part of a second certificate, wherethe second certificate may include a second signature equivalent to thesignature, a means for sending the second certificate to the secondcomputing device, a means for converting the hardware serial number to ahardware key including a means for hashing the hardware serial number toobtain a hash, and a means for discarding a portion of the hash, areincluded.

A means for receiving a hardware serial number associated with ahardware component of a computing device, a means for converting thehardware serial number to a hardware key check, a means for receiving ahardware key associated with a certificate from the computing device, ameans for comparing the hardware key to the hardware check key to obtaina verification of the certificate, a means for verifying the certificatewhen the hardware key check matches the hardware key and not verifyingthe certificate when the hardware key check does not match the hardwarekey, a means for authenticating a signature associated with thecertificate, a means for permitting access to the data processingapparatus by the computing device when the certificate is verified andthe signature is determined to be authentic, a means for receiving asecond hardware serial number associated with a second hardwarecomponent of a second computing device, wherein the second hardwarecomponent is of the same type as the hardware component of the firstcomputing device, a means for converting the second hardware serialnumber to a second hardware key check, a means for receiving a secondhardware key associated with a second certificate from the secondcomputing device, a means for comparing the second hardware key to thesecond hardware key check to obtain a verification of the secondcertificate, and a means for verifying the second certificate when thesecond hardware key check matches the second hardware key and notverifying the second certificate when the second hardware key check doesnot match the second hardware key, and wherein a second signatureequivalent to the signature is associated with the second certificate, ameans for authenticating the second signature, a means for permittingaccess to the data processing apparatus by the second computing devicewhen the second certificate is verified and the second signature isdetermined to be authentic, means for converting the hardware serialnumber to a hardware key check including a means for hashing thehardware serial number to obtain a hash, and a means for discarding aportion of the hash, are also included.

Systems and techniques disclosed herein may allow for per-deviceauthentication. Additional features, advantages, and embodiments of thedisclosed subject matter may be set forth or apparent from considerationof the following detailed description, drawings, and claims. Moreover,it is to be understood that both the foregoing summary and the followingdetailed description are examples and are intended to provide furtherexplanation without limiting the scope of the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are included to provide a furtherunderstanding of the disclosed subject matter, are incorporated in andconstitute a part of this specification. The drawings also illustrateembodiments of the disclosed subject matter and together with thedetailed description serve to explain the principles of embodiments ofthe disclosed subject matter. No attempt is made to show structuraldetails in more detail than may be necessary for a fundamentalunderstanding of the disclosed subject matter and various ways in whichit may be practiced.

FIG. 1 shows an example system suitable for per-device authenticationaccording to an implementation of the disclosed subject matter.

FIG. 2 shows an example system suitable for per-device authenticationaccording to an implementation of the disclosed subject matter.

FIG. 3 shows an example system suitable for per-device authenticationaccording to an implementation of the disclosed subject matter.

FIG. 4 shows an example arrangement for per-device authenticationaccording to an implementation of the disclosed subject matter.

FIG. 5 shows an example arrangement for per-device authenticationaccording to an implementation of the disclosed subject matter.

FIG. 6 shows an example arrangement for per-device authenticationaccording to an implementation of the disclosed subject matter.

FIG. 7 shows an example of a process for per-device authenticationaccording to an implementation of the disclosed subject matter.

FIG. 8 shows an example of a process for per-device authenticationaccording to an implementation of the disclosed subject matter.

FIG. 9 shows a computer according to an embodiment of the disclosedsubject matter.

FIG. 10 shows a network configuration according to an embodiment of thedisclosed subject matter.

DETAILED DESCRIPTION

Per-device authentication using a hardware key to be used withcertificates using duplicate signatures on mobile computing devices mayallow for authentication of the mobile computing devices on a per-devicebasis without requiring the generation of a unique signature for eachcertificate. Mobile computing devices, such as smartphones and tablets,may use certificates to authenticate themselves to other computingdevices, for example, vehicle computing devices such as the head unit ofa car's audio/visual system. Different mobile computing devices may begiven certificates that have the same signature. To ensure that thecertificates cannot be taken off of the mobile computing device's theywere issued to and used on other mobile computing devices, thecertificate may also include a hardware key. The hardware key in acertificate may be generated based on the serial number of a hardwarecomponent of the mobile computing device to which the certificate wasissued. Two mobile computing devices may have certificates with the samesignature, but differing hardware keys. When authenticating a mobilecomputing device's certificate, the vehicle computing device mayretrieve the hardware serial number that was used to generate thehardware key, and may generate another hardware key, which may be usedas a hardware key check, in the same manner. If the hardware keygenerated by the vehicle computing device matches the hardware keystored in the certificate of the mobile computing device, the vehiclecomputing device may proceed to authenticate the signature in thecertificate. Otherwise, if the hardware keys do not match, the mobilecomputing device may not be authenticated, and may be prevented fromaccessing the vehicle computing device, as the mobile computing devicemay be using a certificate stolen from a different mobile computingdevice.

A mobile computing device, such as a smartphone or tablet, may be usedin conjunction with a vehicle computing device, such as the head unit ofa cars audio/visual system or other on-board computer system. Forexample, a smartphone may be connected to a car's head unit to allowplayback of media, such as music, from the smartphone, or use of othersuitable features of the smartphone. When a mobile computing device isconnected to a vehicle computing device, the vehicle computing devicemay need to authenticate the mobile computing device, for example, toensure the mobile computing device is authorized to access the vehiclecomputing device. The mobile computing device may include a certificatethat may uniquely identify the mobile computing device, allowing thevehicle computing device to determine the identity of the mobilecomputing device and whether the mobile computing device is authorizedto access the vehicle computing device. The certificate may be issued tothe mobile computing device during manufacture of the mobile computingdevice, and may be obtained from, for example, a manufacturer of thevehicle computing device or party responsible for the operating systemor platform used by the vehicle computing device. Thus, the certificatesmay only be issued to mobile computing device that have been certifiedto work with the vehicle computing device.

The certificate may include a signature, which may be any suitable andverifiable signature for establishing the identity of the mobilecomputing device. For example, the signature may be an SSL signaturewhich may be verified using a public key stored on the vehicle computingdevice. Generating a unique signature for every mobile computing devicethat may be authorized to access a vehicle computing device may bedifficult, as there may be many millions of such devices. The number ofcertificate signatures generated may be fewer than the number of mobilecomputing devices to which the certificates will be issued, withdifferent mobile computing devise having certificates with the samesignature. For example, for 256 mobile computing devices, instead ofgenerating 256 unique signatures, requiring a minimum of 8 bits torepresent, only 16 signatures may be generated, requiring a minimum of 4bits to represent, although more bits may be used to ensure thesignature is complex enough that unauthorized parties cannot generatevalid signatures. Each of the 16 signatures may be used in thecertificates 16 different mobile computing devices apiece. For example,16 of the mobile computing device may have a certificate with thesignature “0001”. The signature may be associated with a public key. Forexample, any suitable cryptographic system, such as SSL, may be used togenerate both the signatures and the public keys that may be used toauthenticate the signatures.

Because more than one mobile computing device may use the same signaturein its certificate, it may be difficult for a vehicle computing deviceto verify whether a mobile computing device is authorized or is using astolen certificate. To prevent the use of stolen certificates, ahardware key may be added to each certificate issued to each mobilecomputing device. The hardware key in a mobile computing device'scertificate may be based on a hardware serial number taken from anysuitable hardware component of the mobile computing device. For example,a USB chip on the mobile computing device may have a serial number,which may unique for every USB chip on every computing device. A networkinterface, such as a WiFi radio, may have a MAC address which is uniqueto every network interface on every computing device and may serve as ahardware serial number.

When a certificate, with non-unique signature, is issued to a mobilecomputing device, for example, during initial setup of the mobilecomputing device by the manufacturer, the hardware serial number of theselected hardware component of the mobile computing device may be usedto generate the hardware key, which may be stored in the certificatebefore the certificate is issued. The hardware key may be generated fromthe hardware serial number in any suitable manner. For example, ahashing algorithm may be used to hash the hardware serial number,reducing, for example a USB serial number of 192 bits to a hardware keyof 32 bits. The hardware key may be stored in the certificate in anysuitable manner, for example, in a section of the certificate reservedfor “extra” data. Each mobile computing device may have a uniquehardware key stored in its certificate, even when the signature in thecertificate is a duplicate, due to the uniqueness of the hardware serialnumber and the use of an appropriate hashing algorithm.

The mobile computing device, including the certificate with thenon-unique signature and the unique hardware key, may be connected to avehicle computing device in any suitable manner. For example, asmartphone may be plugged into a car's head unit using a USB cable. Thevehicle computing device may authenticate the mobile computing devicebased on the certificate stored on the mobile computing device. Forexample, the vehicle computing device may use the public key, which mayhave been stored on the vehicle computing device during configuration bythe manufacturer, to validate the non-unique signature in the mobilecomputing device's certificate. The vehicle computing device may ensurethat the certificate on the mobile computing device was issued to thatmobile computing device, and not stolen or otherwise obtained from adifferent mobile computing device, using the hardware key. The vehiclecomputing device may receive the hardware serial number from thehardware component of the mobile computing device. For example, thevehicle computing device may read the USB serial number off of the USBchip that is part of the connection between the vehicle computing deviceand the mobile computing device. The vehicle computing device maygenerate a hardware key, which may be used as a hardware key check, fromthe hardware serial number in the same manner, for example, by using thesame hashing algorithm, as was used to generate the hardware key that isstored in the certificate of the mobile computing device. The hardwarekey check generated by the vehicle computing device may be compared tothe hardware key stored in the certificate on the mobile computingdevice. If the hardware key check matches the hardware key, thecertificate may belong to the mobile computing device, which may beauthenticated by the vehicle computing device if the vehicle computingdevice can also authenticate the signature. If the hardware key checkdoes not match that hardware key, the certificate may not belong to themobile computing device, and may have been stolen from a differentmobile computing device. The vehicle computing device may notauthenticate the mobile computing device, even if the signature in thecertificate can be validated.

For example, a smartphone may be issued a certificate with a signatureof 0101. The signature may be a shared among a number of differentsmartphones. The smartphone may have a USB chip with a serial number of842A480FG17P521N033Q2BV7. The hardware serial number may be hashed, forexample, using MD5, to 3b22442436f8f85d01fe145e26b40d6d, which may bereduced to a 32 bit representation by discarding all but the last fourcharacters, resulting in a hardware key 0d6d. This hardware key may bestored in the certificate issued to the smartphone along with thenon-unique signature with a binary representation of 0101. Thesmartphone may be connected to the head unit in a car, for example,using a USB cable. The head unit in the car may receive the serialnumber of the USB chip in the smartphone, for example, reading theserial number directly off of the USB chip. The head unit may then hashthe retrieved serial number of 842A480FG17P521N033Q2BV7 using MD5, andreduce the result to a 32 bit by discarding all but the last fourcharacters in the hash, resulting in a hardware key check of 0d6d. Thismay match the hardware key stored in the smartphone's certificate,allowing the head unit to continue authenticating the smartphone, forexample, authenticating the non-unique certificate of 0101 using SSL anda public key stored on the head unit.

The smartphone's certificate may be stolen, or otherwise moved, to asecond smartphone. When the second smartphone is connected to the headunit in the car, the head unit may retrieve the serial number from thesecond smartphone's USB chip. The second smartphone's USB chip may havea serial number of O3NG6389DGD144511FWTN983. The head unit may hash thishardware serial number using MD5, resulting in a hash off29ccbb3c5b6d5fead63a096f9ab65fe. Discarding all but the last fourcharacters may result in a hardware key check of 65fe. The head unit maycompare this generated hardware key check to the hardware key stored inthe second's smartphone certificate, which may be 0d6d. The hardware keycheck may not match that hardware key, indicating that the secondsmartphone is using a certificate that was not issued to the secondsmartphone. The head unit may not authenticate the second smartphone,even though the second smartphone's certificate has a valid signature of0101. The second smartphone may be prevented from accessing the headunit due to the use of a certificate that was not issued to the secondsmartphone.

The hardware key may be stored in the certificate in any suitableformat. For example, the hardware key may be stored as a characterstring using any number of bits for each character. The hardware key maybe any suitable number of bits in length. For example, the hardwareserial number may be used as the hardware key without hashing ordiscarding any portion of the hardware serial number. Further, a hashedhardware serial number may be used as the hardware key withoutdiscarding any portion of the hash.

FIG. 1 shows an example system suitable for per-device authenticationaccording to an implementation of the disclosed subject matter. Acomputing device 100 may include a certificate generator 110 and astorage 140. The computing device 100 may be any suitable device, suchas, for example, a computer 20 as described in FIG. 9. The computingdevice 100 may be a single computing device, or may include multipleconnected computing devices, and may be, for example, a server systemused by a manufacturer of mobile computing devices. The certificategenerator 110 may generate a certificate 142, including a signature 143and a hardware key 144, for issuance to and use on a mobile computingdevice. The storage 140 may store the certificate 142 in any suitablemanner.

The certificate generator 110 may be any suitable hardware and softwareon the computing device 100 for generating the certificate 142. Forexample, the certificate generator 110 may include cryptographic,hashing, and conversion hardware and software for generating a number ofsignatures, hashing hardware serial numbers, and converting theresulting hash into a hardware key. The certificate generator 110 mayalso, for example, receive a batch of signatures from, for example, themanufacturer of or party responsible for the operating system orplatform used by vehicle computing devices, for use in generating thecertificate 142. The certificate 142 may be generated for a mobilecomputing device, using the signature 143, which may be non-unique andused in certificates for other mobile computing devices, and thehardware key 144, which may be generated based on a hardware serialnumber of a hardware component of the mobile computing device.

FIG. 2 shows an example system suitable for per-device authenticationaccording to an implementation of the disclosed subject matter. A mobilecomputing device 200 may include an external interface 220, and astorage 240. The mobile computing device 200 may be any suitable device,such as, for example, a computer 20 as described in FIG. 9. The mobilecomputing device 200 may be a single computing device, or may includemultiple connected computing devices, and may be, for example, a mobilecomputing device, such as a tablet, smartphone, or laptop. The externalinterface 220 may be allow the mobile computing device 100 tocommunicate with other computing devices, for example, a vehiclecomputing device, and include a hardware component that has a uniqueserial number. For example, the mobile computing device 200 may receivethe certificate 142 from the computing device 100 during, for example,initial configuration of the mobile computing device 100 by itsmanufacturer. The storage 240 may store the certificate 142, includingthe signature 143 and hardware key 144, in any suitable manner. Forexample, the storage 240 may be secure storage, which may preventtampering with the certificate 142. The signature 143 may be non-unique,and may be used in certificates issued to computing device other thanthe mobile computing device 100. The hardware key 144 may be generatedby the certificate generator 110 from the hardware serial number of thehardware component in the external interface 220.

The external interface 220 may be any suitable combination of hardwareand software on the mobile computing device 200 for connecting, usingwires or wirelessly to a local area network or other local device. Forexample, the external interface 220 may use a WiFi radio to connect to arouter that has created a local area network, or to connect directly toanother device, may use a Bluetooth radio to connect directly to anotherdevice, or may use a USB cable to connect to another device. Theexternal interface 220 may include a hardware component, such as a USBchip or network interface card, that may include a unique hardwareserial number, such as a USB serial number or MAC address, that may beused by the certificate generator 110 to generate the hardware key 144for inclusion in the certificate 142 issued from the computing device100 to the mobile computing device 200. The hardware component of theexternal interface 220 may be accessible to other devices connected tothe mobile computing device 200, for example, allowing the computingdevice 100 to read the hardware serial number to generate the hardwarekey 144, and allowing a vehicle computing device to access the hardwareserial number to check the hardware key 144.

FIG. 3 shows an example system suitable for an interface for multiplemedia applications according to an implementation of the disclosedsubject matter. A vehicle computing device 300 may include a certificateauthenticator 310, an external interface 320, and a storage 340. Thevehicle computing device 300 may be any suitable device, such as, forexample, a computer 20 as described in FIG. 9. The vehicle computingdevice 300 may be a single computing device, or may include multipleconnected computing devices, and may be, for example, part of the headunit of a vehicle's audio/visual system. The certificate authenticator310 may check the certificate 142 of the mobile computing device 200 forauthenticity, determining whether the mobile computing device 200 mayaccess the vehicle computing device 300. The external interface 320 mayallow the vehicle computing device 300 to communicate with otherdevices, such as the mobile computing device 100. A certificate 342 mayinclude signature 343, which may allow the vehicle computing device 300to be authenticated by the mobile computing device 200. The storage 340may store the certificate 342 in any suitable manner.

The certificate authenticator 310 may be any suitable hardware andsoftware on the vehicle computing device 300 for authenticating thecertificate 142. For example, the certificate authenticator 310 mayinclude cryptographic, hashing, and conversion hardware and softwarewhich may be the same or similar to that used by the certificategenerator 110. For example, if the signature 143 was generated usingSSL, the certificate authenticator 310 may use SSL to authenticate thesignature 143. The certificate generator 310 may be able to authenticatethe signature 143, hash hardware serial numbers, convert the resultinghash into a hardware key check, and compare that generated hardware keycheck to the hardware key 144 to check that the certificate 142 wasissued to the mobile computing device 200, and was not taken from adifferent mobile computing device. The certificate authenticator 310may, for example, receive a public key from, for example, themanufacturer of or party responsible for the operating system orplatform used by vehicle computing devices, for use in authenticatingthe signature 143 from the certificate 142. The certificateauthenticator 310 may generate the hardware key check that may becompared to the hardware key 144 based on the hardware serial number ofthe same hardware component of the external interface 220 used by thecertificate generator 110 to generate the hardware key 144. For example,if the hardware key 144 was generated based on the serial number of aUSB chip in the external interface 220 of the mobile computing device200, the certificate authenticator 310 may retrieve the serial number ofthe USB chip in the external interface 220 of the mobile computingdevice 200 when generating a hardware key check to compare to thehardware key 144.

The external interface 320 may be any suitable combination of hardwareand software on the vehicle computing device 200 for establishing awired or wireless connection to a local area network or other localdevice, such as the mobile computing device 200. For example, theexternal interface 320 may use a USB connection to connect directly toanother device.

FIG. 4 shows an example arrangement for per-device authenticationaccording to an implementation of the disclosed subject matter. Thecomputing device 100 may issue certificate, such as the certificate 142,to mobile computing devices, such as the mobile computing device 200.For example, the mobile computing device 200 may be configured afterbeing manufactured, which may include issuing certificates to the mobilecomputing device 200. The computing device 100, which may be, forexample, part of the server system used by a manufacturer to configuredevices, may receive the hardware serial number from the externalinterface 220 of the mobile computing device 200. The hardware serialnumber may be, for example, the serial number of a USB chip.

The certificate generator 110 of the computing device 100 may generatethe hardware key 144 using the hardware serial number, for example,hashing the hardware serial number and reducing the number of bits usedby discarding part of the hash. The hardware key 144 may be stored aspart of the certificate 142. The signature 143 may also be stored in thecertificate 142 by the certificate generator 110. The signature 143 maybe generated by the certificate generator 110 using any suitablecryptographic system, or may be selected from a number of signaturesprovided to the computing device 100 by, for example, the manufactureror party responsible for the operating system or platform of the vehiclecomputing device 300. The signature 143 may be non-unique.

The certificate 142 may be issued to the mobile computing device 200.Once the certificate generator 110 has generated the certificate 142,including the signature 143 and the hardware key 144, the certificate142 may be transferred to the mobile computing device 200. For example,the certificate 142 may be copied from the storage 140 on the computingdevice 100 into the storage 240 on the mobile computing device 200.

FIG. 5 shows an example arrangement for per-device authenticationaccording to an implementation of the disclosed subject matter. Thecomputing device 100 may be used to issue certificates, such as thecertificate 142, to a number of mobile computing devices, some of whichmay be issued certificates that use the same signature. For example, thecomputing device 100 may issue the certificate 542 to the mobilecomputing device 500. The certificate 542 may include the samenon-unique signature as the certificate 142, the signature 143. Thehardware key 544 may be based on a hardware serial number of a hardwarecomponent of the external interface 540 of the mobile computing device500, and may be different from the hardware key 144. Each certificateissued to a mobile computing device by the computing device 100 mayinclude a unique hardware key, even when the signature is non-unique.

FIG. 6 shows an example arrangement for per-device authenticationaccording to an implementation of the disclosed subject matter. Themobile computing device 200 may be connected to the vehicle computingdevice 300 by establishing a connection between the external interface220 and the external interface 320. For example, a user may bringsmartphone into a car and connect the smartphone to the car's head unitusing a USB cable. The vehicle computing device 300 may receive thehardware serial number from the external interface 220 of the mobilecomputing device 200, for example, by reading the hardware serial numberdirectly from the hardware component. For example, the head unit mayread the USB serial number off of the USB chip in the smartphone thatwas used to establish the USB connection with the head unit.

The certificate authenticator 310 of the vehicle computing device 300may attempt verify that the certificate 142 was issued to the mobilecomputing device 200, and was not obtained, for example, stolen, fromanother mobile computing device. The certificate authenticator 310 mayhash the hardware serial number, reduce the number of bits in theresulting hash through discarding of parts of the hash, and convert theremaining portion of the hash to a hardware key check, all in the samemanner as the certificate generator 110 when the hardware key 144 wasfirst generated. The vehicle computing device 320 may receive thehardware key 144 from the certificate 142 on the mobile computing device200, and the certificate generator 320 may compare the hardware key 144to the hardware key check generated on the vehicle computing device 300.If the hardware key check matches the hardware key 144, the certificate142 may have been issued to the mobile computing device 200, and thevehicle computing device 200 may authenticate the mobile computingdevice 200, for example, using a public key to authenticate thesignature 143. The certificate authenticator 310 may authenticate thesignature 143 of the certificate 142 before, during, or while verifyingthe certificate 142 based on the hardware key 144. When both thehardware key 144 and the signature 143 have been authenticated, themobile computing device 200 may be permitted access to the vehiclecomputing device 300. For example, a smartphone may playback music orimplement other functionality using the head unit of the car'saudio/visual system.

If the hardware key check does not match the hardware key 144, this mayindicate that the certificate 142 was taken from a different mobilecomputing device, which had a different hardware serial number than themobile computing device 200. The certificate authenticator 310 may notauthenticate the mobile computing device 200, preventing the mobilecomputing device 200 from accessing the vehicle computing device 300.For example, if the certificate 142 was generated for a firstsmartphone, having a USB chip with a first serial number, the hardwarekey 144 may only be verified with a hardware key check generated usingthat first serial number. A second smartphone, with a USB chip with asecond serial number, may be unable to use the certificate 142 with thevehicle computing device 300, as the second serial number may result ina hardware key check that does not match the hardware key 144.

FIG. 7 shows an example of a process per-device authentication accordingto an implementation of the disclosed subject matter. At 700, a hardwareserial number may be received. For example, the computing device 100 mayreceive a hardware serial number for a hardware component of theexternal interface 220 of the mobile computing device 200. The hardwareserial number may be, for example, a USB serial number for a USB chip,or a MAC address for a network interface card.

At 702, a hardware key may be generated. For example, the certificategenerator 110 on the computing device 100 may use the hardware serialnumber to generate the hardware key 144. The hardware key may begenerated in any suitable manner, such as, for example, hashing of thehardware serial number with a suitable hashing algorithm and discardingof a portion of the resulting hash. The hardware key 144 may be uniqueto the mobile computing device 200, as the hardware key 144 may be basedon the unique hardware serial number.

At 704, the hardware key may be stored in a certificate. For example,the certificate generator 110 may store the hardware key 144 in thecertificate 142 on the computing device 100. The certificate 142 mayalso include the signature 143, which may be any suitable signature fora cryptographic system, such as SSL. The signature 143 may benon-unique, and may be used in certificates other than the certificate142 issued to mobile computing devices other than the mobile computingdevice 200. The certificate generator 110 may generate the signature 143using any suitable cryptographic system, or may have obtained thesignature 143 from an outside party, such as, for example, amanufacturer of the vehicle computing device 300 or party responsiblefor the operating system or platform used by the vehicle computingdevice 300.

At 706, the certificate may be issued. For example, the computing device100 may issue the certificate 142 to the mobile computing device 200.The certificate 142, including the signature 143 and the hardware key144, may be moved from the storage 140 on the computing device 100 tothe storage 240 on the mobile computing device 200. The storage 240 maybe, for example, secure storage for certificates. The computing device100 may issue the certificate 142 as part of the initial setup andconfiguration of the mobile computing device 200 to prepare the mobilecomputing device 200 for distribution and sale after manufacture.

FIG. 8 shows an example of a process for per-device authenticationaccording to an implementation of the disclosed subject matter. At 800,a hardware serial number may be received. For example, the mobilecomputing device 200 may be connected to the vehicle computing device300. A connection may be established between the external interface 220and the external interface 320, for example, using a USB cable. Thevehicle computing device 300 may receive a hardware serial number for ahardware component of the external interface 220 of the mobile computingdevice 200. The hardware serial number may be, for example, a USB serialnumber for a USB chip, or a MAC address for a network interface card.

At 802, a hardware key may be received. For example, the hardware key144 from the certificate 142 on the mobile computing device 200 may bereceived by the vehicle computing device 300. The hardware key 144 maybe received in response to a request, for example, from the certificateauthenticator 310, or may be received automatically whenever aconnection is established between the mobile computing device 200 andthe vehicle computing device 300.

At 804, a hardware key check may be generated. For example, thecertificate authenticator 310 on the vehicle computing device 300 mayuse the hardware serial number to generate the hardware key check. Thehardware key check may be generated in the same manner as the hardwarekey 144, for example, hashing of the hardware serial number with thesame hashing algorithm used by the certificate generator 110 anddiscarding of the same portion of the resulting hash.

At 806, the hardware key check may be matched to the hardware key. Forexample, the hardware key check may be compared with the hardware key144 to determine if they match. The hardware key check may match thehardware key 144 when both were generated from the same hardware serialnumber, which may occur when the hardware serial number was receivedfrom the same hardware component by both the certificate generator 110and the certificate authenticator 310. A match between the hardware keycheck and the hardware key 144 may indicate that the certificate 142 wasissued to the mobile computing device 200, and was not taken from adifferent a mobile computing device. A match may verify the certificate142. A mismatch between the hardware key check and the hardware key 144may indicate that the certificate 142 was not issued to the mobilecomputing device 200, and may be stolen from another mobile computingdevice or otherwise illegitimately obtained. A mismatch may occurbecause the hardware key 144 was generated from a hardware serial numberof a hardware component on some other mobile computing device, and thecertificate 142 was issued to the other mobile computing device. Thevehicle computing device 300 may have received the hardware serialnumber for the hardware component of the mobile computing device onwhich the certificate 142 is now stored, and that hardware serial numbermay not match the hardware serial number of the other mobile computingdevice, leading to the hardware key check being different from thehardware key 144.

At 808, a certificate may be received. For example, the vehiclecomputing device 300 may receive the entirety of the certificate 142,including the signature 143, from the mobile computing device 300. Thecertificate 142 may be received after a match has been found between thehardware key check and the hardware key 144, or, for example, may bereceived when a connection is established between the mobile computingdevice 200 and the vehicle computing device 300.

At 810, the signature may be authenticated. For example, the certificateauthenticator 310 may authenticate the signature 143 from thecertificate 142 using a public key. The public key may have beenprovided to the vehicle computing device 300 by, for example, themanufacturer of the vehicle computing device 300 or by a partyresponsible for the operating system or platform used by the vehiclecomputing device 300. The signature 143 may be authenticated using anysuitable cryptographic system, such as, for example, SSL. When both thesignature 143 is authenticated and the hardware key check verifies thecertificate 142 by matching the hardware key 144, the mobile computingdevice 200 may be permitted access to the vehicle computing device 300,for example, to play back music through a vehicle's stereo system orimplement any other suitable functionality.

Embodiments of the presently disclosed subject matter may be implementedin and used with a variety of component and network architectures. FIG.9 is an example computer system 20 suitable for implementing embodimentsof the presently disclosed subject matter. The computer 20 includes abus 21 which interconnects major components of the computer 20, such asone or more processors 24, memory 27 such as RAM, ROM, flash RAM, or thelike, an input/output controller 28, and fixed storage 23 such as a harddrive, flash storage, SAN device, or the like. It will be understoodthat other components may or may not be included, such as a user displaysuch as a display screen via a display adapter, user input interfacessuch as controllers and associated user input devices such as akeyboard, mouse, touchscreen, or the like, and other components known inthe art to use in or in conjunction with general-purpose computingsystems.

The bus 21 allows data communication between the central processor 24and the memory 27. The RAM is generally the main memory into which theoperating system and application programs are loaded. The ROM or flashmemory can contain, among other code, the Basic Input-Output system(BIOS) which controls basic hardware operation such as the interactionwith peripheral components. Applications resident with the computer 20are generally stored on and accessed via a computer readable medium,such as the fixed storage 23 and/or the memory 27, an optical drive,external storage mechanism, or the like.

Each component shown may be integral with the computer 20 or may beseparate and accessed through other interfaces. Other interfaces, suchas a network interface 29, may provide a connection to remote systemsand devices via a telephone link, wired or wireless local- or wide-areanetwork connection, proprietary network connections, or the like. Forexample, the network interface 29 may allow the computer to communicatewith other computers via one or more local, wide-area, or othernetworks, as shown in FIG. 10.

Many other devices or components (not shown) may be connected in asimilar manner, such as document scanners, digital cameras, auxiliary,supplemental, or backup systems, or the like. Conversely, all of thecomponents shown in FIG. 9 need not be present to practice the presentdisclosure. The components can be interconnected in different ways fromthat shown. The operation of a computer such as that shown in FIG. 9 isreadily known in the art and is not discussed in detail in thisapplication. Code to implement the present disclosure can be stored incomputer-readable storage media such as one or more of the memory 27,fixed storage 23, remote storage locations, or any other storagemechanism known in the art.

FIG. 10 shows an example arrangement according to an embodiment of thedisclosed subject matter. One or more clients 10, 11, such as localcomputers, smart phones, tablet computing devices, remote services, andthe like may connect to other devices via one or more networks 7. Thenetwork may be a local network, wide-area network, the Internet, or anyother suitable communication network or networks, and may be implementedon any suitable platform including wired and/or wireless networks. Theclients 10, 11 may communicate with one or more computer systems, suchas processing units 14, databases 15, and user interface systems 13. Insome cases, clients 10, 11 may communicate with a user interface system13, which may provide access to one or more other systems such as adatabase 15, a processing unit 14, or the like. For example, the userinterface 13 may be a user-accessible web page that provides data fromone or more other computer systems. The user interface 13 may providedifferent interfaces to different clients, such as where ahuman-readable web page is provided to web browser clients 10, and acomputer-readable API or other interface is provided to remote serviceclients 11. The user interface 13, database 15, and processing units 14may be part of an integral system, or may include multiple computersystems communicating via a private network, the Internet, or any othersuitable network. Processing units 14 may be, for example, part of adistributed system such as a cloud-based computing system, searchengine, content delivery system, or the like, which may also include orcommunicate with a database 15 and/or user interface 13. In somearrangements, an analysis system 5 may provide back-end processing, suchas where stored or acquired data is pre-processed by the analysis system5 before delivery to the processing unit 14, database 15, and/or userinterface 13. For example, a machine learning system 5 may providevarious prediction models, data analysis, or the like to one or moreother systems 13, 14, 15.

The foregoing description, for purpose of explanation, has beendescribed with reference to specific embodiments. However, theillustrative discussions above are not intended to be exhaustive or tolimit embodiments of the disclosed subject matter to the precise formsdisclosed. Many modifications and variations are possible in view of theabove teachings. The embodiments were chosen and described in order toexplain the principles of embodiments of the disclosed subject matterand their practical applications, to thereby enable others skilled inthe art to utilize those embodiments as well as various embodiments withvarious modifications as may be suited to the particular usecontemplated.

What is claimed is:
 1. A method comprising: receiving, by a firstcomputing device and from a second computing device, a first digitalcertificate comprising a first hardware key and a digital signature,wherein the first hardware key was generated based on a hardware serialnumber associated with a hardware component of a fourth computingdevice, the hardware component of the fourth computing device being aparticular type of hardware component; generating, by the firstcomputing device and based on a hardware serial number associated with ahardware component of the second computing device, a first hardware keycheck, the hardware component of the second computing device being ofthe particular type of hardware component; determining, the firstcomputing device, whether the first digital certificate is valid basedon a comparison of the first hardware key and the first hardware keycheck; responsive to determining that the first digital certificate isvalid, permitting, by the first computing device, the second computingdevice to access the first computing device; receiving, by the firstcomputing device and from a third computing device, a second digitalcertificate comprising a second hardware key and the digital signature,wherein the second hardware key was generated based on a hardware serialnumber associated with a hardware component of a fifth computing device,the hardware component of the fifth computing device being of theparticular type of hardware component; generating, by the firstcomputing device and based on the hardware serial number associated witha hardware component of the third computing device, a second hardwarekey check, the hardware component of the third computing device being ofthe particular type of hardware component; determining, the firstcomputing device, whether the second digital certificate is valid basedon a comparison of the second hardware key and the second hardware keycheck; and responsive to determining that the second digital certificateis valid, permitting, by the first computing device, the third computingdevice to access the first computing device.
 2. The method of claim 1,further comprising: responsive to determining that the digitalcertification is not valid, preventing, by the first computing device,the second computing device from accessing the first computing device.3. The method of claim 1, wherein generating the first hardware keycheck comprises: applying, by the first computing device, a hashfunction to the hardware serial number associated with the hardwarecomponent of the second computing device to generate a hashed value ofthe hardware serial number associated with the hardware component of thesecond computing device.
 4. The method of claim 3, wherein generatingthe first hardware key check further comprising: discarding, by thefirst computing device, a portion of the hashed value to generate aremaining portion of the hashed value, wherein the remaining portion ofthe hashed value is the first hardware key check.
 5. The method of claim4, wherein first hardware key is a portion of a hashed value generatedby applying the hash function to the hardware serial number associatedwith the hardware component of the fourth computing device, and whereindetermining whether the first digital certificate is valid based on acomparison of the first hardware key and the first hardware key checkcomprises determining that the first digital certificate is valid whenthe first hardware key matches the first hardware key check.
 6. Themethod of claim 1, wherein determining, the first computing device,whether the first digital certificate is valid further comprises:authenticating, by the first computing device, the digital signature. 7.The method of claim 1, wherein the first computing device is a vehiclehead unit, and wherein the second computing device is a mobile phone. 8.The method of claim 1, wherein the particular type of hardware componentis one of a universal serial bus chip or a network interface.
 9. A firstcomputing device comprising: one or more processors; a network interfacethat receives, from a second computing device, a first digitalcertificate, and receives, from a third computing device, a seconddigital certificate, wherein the first digital certificate includes afirst hardware key and a digital signature, wherein the first hardwarekey was generated based on a hardware serial number associated with ahardware component of a fourth computing device, the hardware componentof the fourth computing device being a particular type of hardwarecomponent, wherein the second digital signature includes a secondhardware key and the digital signature, and wherein the second hardwarekey was generated based on a hardware serial number associated with ahardware component of a fifth computing device, the hardware componentof the fifth computing device being of the particular type of hardwarecomponent; and a computer-readable storage media that stores codeexecutable by the one or more processors to: generate, based on ahardware serial number associated with a hardware component of thesecond computing device, a first hardware key check, the hardwarecomponent of the second computing device being of the particular type ofhardware component; determine whether the first digital certificate isvalid based on a comparison of the first hardware key and the firsthardware key check; responsive to determining that the first digitalcertificate is valid, permit the second computing device to access thefirst computing device; generate, based on the hardware serial numberassociated with a hardware component of the third computing device, asecond hardware key check, the hardware component of the third computingdevice being of the particular type of hardware component; determinewhether the second digital certificate is valid based on a comparison ofthe second hardware key and the second hardware key check; andresponsive to determining that the second digital certificate is valid,permit the third computing device to access the first computing device.10. The first computing device of claim 9, wherein the code is furtherexecutable by the one or more processors to: responsive to determiningthat the digital certification is not valid, prevent the secondcomputing device from accessing the first computing device.
 11. Thefirst computing device of claim 9, wherein the code is furtherexecutable by the one or more processors to generate the first hardwarekey check by at least being executable by the one or more processors to:apply a hash function to the hardware serial number associated with thehardware component of the first computing device to generate a hashedvalue of the hardware serial number associated with the hardwarecomponent of the second computing device.
 12. The first computing deviceof claim 11, wherein the code is further executable by the one or moreprocessors to generate the first hardware key check by at least beingexecutable by the one or more processors to: discard a portion of thehashed value to generate a remaining portion of the hashed value,wherein the remaining portion of the hashed value is the first hardwarekey check.
 13. The first computing device of claim 11, wherein firsthardware key is a portion of a hashed value generated by applying thehash function to the hardware serial number associated with the hardwarecomponent of the fourth computing device, and wherein the code isfurther executable by the one or more processors to determine whetherthe first digital certificate is valid based on a comparison of thefirst hardware key and the first hardware key check by at least beingexecutable by the one or more processors to determine that the firstdigital certificate is valid when the first hardware key matches thefirst hardware key check.
 14. The first computing device of claim 9,wherein the code is further executable by the one or more processors todetermine whether the first digital certificate is valid by at leastbeing executable by the one or more processors to authenticate thedigital signature.
 15. The first computing device of claim 9, whereinthe particular type of hardware component is one of a universal serialbus chip or a network interface.
 16. The non-transitorycomputer-readable storage medium of claim 15, wherein the firstcomputing device is a vehicle head unit, and wherein the secondcomputing device is a mobile phone.
 17. A non-transitorycomputer-readable storage medium encoded with instructions that, whenexecuted, cause one or more processors of a first computing device to:receive, from a second computing device, a first digital certificatecomprising a first hardware key and a digital signature, wherein thefirst hardware key was generated based on a hardware serial numberassociated with a hardware component of a fourth computing device, thehardware component of the fourth computing device being a particulartype of hardware component; generate, based on a hardware serial numberassociated with a hardware component of the second computing device, afirst hardware key check, the hardware component of the second computingdevice being of the particular type of hardware component; determinewhether the first digital certificate is valid based on a comparison ofthe first hardware key and the first hardware key check; responsive todetermining that the first digital certificate is valid, permit thesecond computing device to access the first computing device; receive,from a third computing device, a second digital certificate comprising asecond hardware key and the digital signature, wherein the secondhardware key was generated based on a hardware serial number associatedwith a hardware component of a fifth computing device, the hardwarecomponent of the fifth computing device being of the particular type ofhardware component; generate, based on the hardware serial numberassociated with a hardware component of the third computing device, asecond hardware key check, the hardware component of the third computingdevice being of the particular type of hardware component; determinewhether the second digital certificate is valid based on a comparison ofthe second hardware key and the second hardware key check; andresponsive to determining that the second digital certificate is valid,permit the third computing device to access the first computing device.18. The non-transitory computer-readable storage medium of claim 17,wherein the instructions further cause the one or more processors to:apply a hash function to the hardware serial number associated with thehardware component of the second computing device to generate a hashedvalue of the hardware serial number associated with the hardwarecomponent of the second computing device; and discard a portion of thehashed value to generate a remaining portion of the hashed value,wherein the remaining portion of the hashed value is the first hardwarekey check.
 19. The non-transitory computer-readable storage medium ofclaim 18, wherein first hardware key is a portion of a hashed valuegenerated by applying the hash function to the hardware serial numberassociated with the hardware component of the fourth computing device,and wherein the instructions further cause the one or more processors todetermine that the first digital certificate is valid when the firsthardware key matches the first hardware key check.
 20. Thenon-transitory computer-readable storage medium of claim 17, wherein theinstructions further cause the one or more processors to: authenticatethe digital signature.